#!/usr/bin/env ruby

require 'optparse'
require 'fileutils'

vendors = {
  'system': 'https://pypi.python.org/simple/',
  'aliyun': 'http://mirrors.aliyun.com/pypi/simple/',
  'ustc': 'https://pypi.mirrors.ustc.edu.cn/simple/',
  'douban': 'http://pypi.douban.com/simple/',
  'v2ex': 'http://pypi.v2ex.com/simple/',
  'opencas': 'http://pypi.mirrors.opencas.cn/simple/',
  'tuna': 'https://pypi.tuna.tsinghua.edu.cn/simple/'
}

ARGV.push('--help') if ARGV.empty?
begin
  OptionParser.new do |opts|
    opts.banner = <<~EOF
      切换 Python 源，可用的提供商包括：

      #{
        vendors.keys.join("\n")
      }
    EOF
  end.parse!
rescue OptionParser::ParseError => ex
  STDERR.puts ex.message
  exit 1
end

vendor = ARGV[0].to_sym
dir_path = "/home/run/.pip"
FileUtils.mkdir_p(dir_path) unless File.exists?(dir_path)
File.write(File.join(dir_path, 'pip.conf'), <<~EOF)
  [global]
  index-url = #{vendors[vendor]}
EOF
